#include <stdio.h>

int main(int argc, const char *argv[])
{
	// 二维数组如果不初始化 里面也都是随机值
	//int s[3][4];
	
	// 以行为单位
		// 完全初始化
		//int s[3][4] = {{1,2,3,4}, \
						{5,6,7,8}, \
						{9,10,11,12}};
		// 不完全初始化
		// 没有初始化的元素 都默认用0来初始化
		//int s[3][4] = {{1,2},\
						{3,4},\
						{5}};

	// 不以行为单位
		// 完全初始化
		//int s[3][4] = {1,2,3,4,\
						5,6,7,8,\
						9,10,11,12};
		// 不完全初始化
		// 没有初始化的元素 都默认用0来初始化
		//int s[3][4] = {1,2,\
						3,4,\
						5};

	// 全部初始化成0 ----最常用的用法
	//int s[3][4] = {0};
	
	// 省略下标的初始化
	// 注意：行数可以省略  列数不能省略 因为列数决定了按行访问时的步长
	// 这种写法即使初始化的元素个数不足整行  也按整行分配空间
	// 没有初始化的元素 也是用0来初始化
	int s[][4] = {1,2,3,4,5,6,7,8,9};
	printf("sizeof(s) = %ld\n", sizeof(s)); // 48 
	
	// 遍历二维数组
	int i;
	int j;
	for(i = 0; i < 3; i++){
		for(j = 0;j < 4; j++){
			printf("%d ", s[i][j]);
		}
		printf("\n");
	}

	return 0;
}
